package com.groupe_A.dao.impl;


import java.util.List;




import com.groupeA.dao.exceptions.DaoException;
import com.groupeA.dao.impl.GenericDaoImpl;
import com.groupe_A.dao.AbsenceDao;
import com.groupe_A.dao.MatiereDao;
import com.groupe_A.metier.Absence;
import com.groupe_A.metier.Etudiant;


public class AbsenceDaoImpl extends GenericDaoImpl<Absence, Long> implements AbsenceDao{

	private MatiereDao matiereDao = new MatiereDaoImpl();
	public AbsenceDaoImpl() {
		super(Absence.class);
		
	}
	
	

	public List<Absence> getAbsenceByCne(Long cne) throws DaoException {
		Etudiant etd = (Etudiant) getHibernateTemplate().find("from Etudiant where cne=?",cne).get(0);
		if (etd!=null) return etd.getAbsences();
		else	throw new DaoException();
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Absence> getAbsenceByMatiere(Long idMatiere)
			throws DaoException {
		return getHibernateTemplate().find("from Absence where idMatiere=?",idMatiere);
	}
	@SuppressWarnings("unchecked")
	public List<Absence> getAbsenceByMatiere(String codeMatiere)
			throws DaoException {
		Long idMatiere = matiereDao.findByCodeMatiere(codeMatiere).getIdMatiere();
		return getHibernateTemplate().find("from Absence where idMatiere=?",idMatiere);
		
		
	}

	public MatiereDao getMatiereDao() {
		return matiereDao;
	}

	public void setMatiereDao(MatiereDao matiereDao) {
		this.matiereDao = matiereDao;
	}


	
}
